/*
 	Tool for Path Finding Algorithm Testing (ToPFAT) 
 	
    Copyright (C) 2009, Teemu Turunen and Arttu Viljakainen 
    Published under GNU General Public License V3 
    (see http://www.gnu.org/licenses/licenses.html)
    
    This file is part of Tool for Path Finding Algorithm Testing.

    Tool for Path Finding Algorithm Testing is free software: you can 
    redistribute it and/or modify it under the terms of the GNU General 
    Public License as published by the Free Software Foundation, 
    either version 3 of the License, or (at your option) any later version.

    Tool for Path Finding Algorithm Testing is distributed in the hope that it
    will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General 
    Public License for more details.

    You should have received a copy of the GNU General Public License
    along with Tool for Path Finding Algorithm Testing. If not, see         <http://www.gnu.org/licenses/>.
 */

package algorithms;

import java.util.Vector;


import algorithms.astar.AStarAlgorithm;
import algorithms.dijkstra.DijkstraStyleAlgorithm;

/**
 * Class holding path finding algorithms.
 *
 * @author teturun
 */
public class PathFindingAlgorithms {

	private Vector<PathFindingAlgorithm> algorithms;
	
	public PathFindingAlgorithms() {
		this.algorithms = new Vector<PathFindingAlgorithm>();
		addAlgorithm(new AStarAlgorithm());
		addAlgorithm(new DijkstraStyleAlgorithm());
	}

	public Vector<PathFindingAlgorithm> getAlgorithms() {
		return algorithms;
	}

	public void addAlgorithm(PathFindingAlgorithm algorithm) {
		
		if (! this.algorithms.contains(algorithm)) {
			this.algorithms.add(algorithm);
		}
		
	}
	
	public void removeAlgorithm(PathFindingAlgorithm algorithm) {
		this.algorithms.remove(algorithm);
	}
	
}
